package one.stand.facade.impl;

import lombok.extern.slf4j.Slf4j;
import one.stand.facade.CompanyFacadeService;
import one.stand.model.CompanySelect;
import one.stand.service.CompanySelectService;
import one.stand.service.GoodsSelectServcie;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Service
@Slf4j
public class CompanyFacadeServiceImpl implements CompanyFacadeService {

    @Autowired
    private CompanySelectService companySelectService;
    @Autowired
    private GoodsSelectServcie goodsSelectServcie;

    @Override
    @Transactional
    public void selectAgree(Integer id) {
        CompanySelect companySelect = companySelectService.get(id);
        companySelectService.agree(id);

        // copy goods
        goodsSelectServcie.copyGoods(companySelect.getCompanyId(), companySelect.getSelectCompanyId());
    }

    @Override
    @Transactional
    public void selectRefuse(Integer id) {
        CompanySelect companySelect = companySelectService.get(id);
        companySelectService.refuse(id);

        // remove goods
        goodsSelectServcie.removeGoodsSelect(companySelect.getCompanyId(), companySelect.getSelectCompanyId());
    }

    @Override
    @Transactional
    public void selectClose(Integer id) {
        CompanySelect companySelect = companySelectService.get(id);
        companySelectService.close(id);

        // remove goods
        goodsSelectServcie.removeGoodsSelect(companySelect.getCompanyId(), companySelect.getSelectCompanyId());
    }
}
